#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10,M=110;
int n,ex[2],ey[2];
int st,c[3],num[3];
int C1[4][2]={{0,-1},{-1,0},{-1,-1},{-1,1}};
int C2[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
char a[N],b[M][M],cc[3]={'R','G','B'},d[4]={'D','R','U','L'};
mt19937_64 g(time(0));
int Rd(int mod)
{
    long long k=g();
    k=abs(k);
    return k%mod+1;
}
bool check(int x,bool p)
{
    // for(int i=1;i<=x;i++) b[1][i]=i%3+'a';
    // for(int i=2;i<=x;i++)
    //     for(int j=1;j<=x;j++)
    //     {
    //         num[0]=num[1]=num[2]=0;
    //         for(int k=0;k<2;k++)
    //         {
    //             int tx=i+C1[k][0],ty=j+C1[k][1];
    //             if(tx>0&&ty>0&&ty<=x) ++num[b[tx][ty]-'a'];
    //         }
    //         int Mn=min({num[0],num[1],num[2]});
    //         st=0;
    //         for(int k=0;k<3;k++)
    //             if(Mn==num[k]) c[++st]=k;
    //         b[i][j]='a'+c[Rd(st)];
    //     }
    for(int i=1,k=0;i<=x;i++,k+=(i&1))
        for(int j=1;j<=x;j++)
            b[i][j]=cc[(j%3+k)%3];
    int tx=1e9,ty=1e9;
    for(int i=1;i<=x;i++)
        for(int j=1;j<=x;j++)
            if(a[1]==b[i][j]&&abs(i-x/2)+abs(j-x/2)<abs(tx-x/2)+abs(ty-x/2)) tx=i,ty=j;
    if(p)
    {
        printf("%d %d\n",x,x);
        for(int i=1;i<=x;i++,putchar('\n'))
            for(int j=1;j<=x;j++) putchar(b[i][j]);
        printf("%d %d\n",tx,ty);
    }
    for(int i=2;i<=n;i++)
    {
        int Mn=1e9;
        for(int j=0;j<4;j++)
        {
            int kx=tx+C2[j][0],ky=ty+C2[j][1];
            if(kx>0&&kx<=x&&ky>0&&ky<=x&&a[i]==b[kx][ky]) Mn=min(Mn,abs(kx-x/2)+abs(ky-x/2));
        }
        st=0;
        for(int j=0;j<4;j++)
        {
            int kx=tx+C2[j][0],ky=ty+C2[j][1];
            if(kx>0&&kx<=x&&ky>0&&ky<=x&&a[i]==b[kx][ky]&&Mn==abs(kx-x/2)+abs(ky-x/2)) c[++st]=j;
        }
        if(!st) return 0;
        int To=Rd(st);
        if(p) putchar(d[c[To]]);
        tx+=C2[c[To]][0],ty+=C2[c[To]][1];
    }
    return 1;
}
int main()
{
    freopen("snake.in","r",stdin);
    freopen("snake.out","w",stdout);
    scanf("%s",a+1);
    n=strlen(a+1);
    if(n==1)
        return printf("1 1\n%c\n1 1\n",a[1]),0;
    if(n<=1e4)
    {
        int k=sqrt(n);
        if(k*k<n) ++k;
        printf("%d %d\n",k,k);
        int tx=1,ty=1,dir=1;
        b[1][1]=a[1];
        for(int i=2;i<=n;i++)
        {
            if(ty+dir==0||ty+dir>k) ++tx,dir*=-1;
            else ty+=dir;
            b[tx][ty]=a[i];
        }
        if(ty+dir==0||ty+dir>k) ++tx,dir*=-1;
        else ty+=dir;
        for(;tx<=k;tx++,dir*=-1)
            for(;ty>0&&ty<=k;ty+=dir) b[tx][ty]='R';
        for(int i=1;i<=k;i++) puts(b[i]+1);
        puts("1 1");
        ty=1,dir=1;
        for(int i=2;i<=n;i++)
            if(ty+dir==0||ty+dir>k) putchar('D'),dir*=-1;
            else putchar(dir==1?'R':'L'),ty+=dir;
        putchar('\n');
        return 0;
    }
    int l=1,r=99,mid,res=100;
    while(l<=r)
    {
        mid=(l+r)>>1;
        if(check(mid,0)) res=mid,r=mid-1;
        else l=mid+1;
    }
    check(res,1);
    // int res=100;
    // cerr<<"He"<<endl;
    // cerr<<check(res,1)<<endl;
    return 0;
}